扩散模型(diffusion model)是什么?

您所在的位置:网站首页 视觉怎么念jiao还是 jue 扩散模型(diffusion model)是什么?

扩散模型(diffusion model)是什么?

2023-03-22 07:05| 来源: 网络整理| 查看: 265

模型起源

2015年的时候,有几位大佬基于非平衡热力学提出了一个纯数学的生成模型 (Sohl-Dickstein et al., 2015)。不过那个时候他们没有用代码实现,所以这篇工作并没有火起来。

直到后来斯坦福大学(Song et al., 2019) 和谷歌大脑 (Ho et al., 2020) 有两篇工作延续了15年的工作。再到后来2020年谷歌大脑的几位大佬又把这个模型实现了出来(Ho et al., 2020),因为这个模型一些极其优秀的特性,所以它现在火了起来。

扩散模型可以做什么?呢它可以做一些。条件生成和非条件生成。在图像、语音、文本三个方向都已经有了一些应用,并且效果比较突出。

比较出圈的工作有我刚介绍的text to image的生成工作比如

OpenAI的GLIDE和 DALL-E 2

谷大脑的 ImageGen

德国海德堡大学的Latent Diffusion

什么是扩散模型?

Diffusion model 和 Normalizing Flows, GANs or VAEs 一样,都是将噪声从一些简单的分布转换为一个数据样本,也是神经网络学习从纯噪声开始逐渐去噪数据的过程。 包含两个步骤:

一个我们选择的固定的(或者说预定义好的)前向扩散过程 qqq ,就是逐渐给图片添加高斯噪声,直到最后获得纯噪声。 一个需要学习的反向的去噪过程 pθp_\thetapθ​,训练一个神经网做图像去噪,从纯噪声开始,直到获得最终图像。

image.png

前向和反向过程都要经过时间步ttt,总步长是TTT(DDPM中T=1000T=1000T=1000)。

你从t=0t=0t=0开始,从数据集分布中采样一个真实图片x0x_0x0​。比如你用cifar-10,用cifar-100,用ImageNet,总之就是从你数据集里随机采样一张图片作为x0x_0x0​。

前向过程就是在每一个时间步ttt中都从一个高斯分布中采样一个噪声,将其添加到上一时间步的图像上。给出一个足够大的TTT,和每一时间步中添加噪声的表格,最终在TTT时间步你会获得一个isotropic Gaussian distribution。

我要开始上公式了!

我们令q(x0)q(\mathbf x_0)q(x0​)是真实分布,也就是真实的图像的分布。

我们可以从中采样一个图片,也就是x0∼q(x0)\mathbf x_0 \sim q(\mathbf x_0)x0​∼q(x0​) 。

我们设定前向扩散过程q(xt∣xt−1)q(\mathbf x_t|\mathbf x_{t-1})q(xt​∣xt−1​)是给每个时间步ttt添加高斯噪声,这个高斯噪声不是随机选择的,是根据我们预选设定好的方差表(0



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3